#ifndef _TYPE_H_
#define _TYPE_H_

#ifndef __CODE16__
#define __CODE16__  asm("code16gcc\n");
#endif

#ifndef __CODE32__
#define __CODE32__ 
#endif

#ifndef __section
#define __section(s) __attribute__((__section__(#s)))
#endif


#ifndef _stack
#define _stack __section(".stack")
#endif

#ifndef _kstack
#define _kstack __section(".stack.kern")
#endif


#ifndef _data
#define _data	__section(".data")
#endif

#ifndef _kdata
#define _kdata	__section(".data.kern")
#endif

#ifndef _gdt
#define _gdt	__section(".data.kern.gdt")
#endif

#ifndef _idt
#define _idt	__section(".data.kern.idt")
#endif

#ifndef _sig_section
#define _sig_section __section(".data.kern.sig")
#endif

#ifndef _proc_section
#define _proc_section __section(".data.kern.proc")
#endif

#ifndef _mm_section
#define _mm_section	__section(".data.kern.mm")
#endif

#ifndef _kmap_section
#define _kmap_section	__section(".kmap")
#endif

#endif
